/**
 * Created by json on 2016/8/18.
 */
/**
 * Created by ydc on 2016/1/3. common.js
 */

$.runningScene = null;

$.key = {};
$.key.UID = "UID";

$.bundleID = null;

$.function = {};
$.f = $.function;

$.function.isInArray = function (el, arr) {
    return arr.indexOf(el) != -1;
};

$.Encryption = function(v){//加密
    return v;
};
$.Decrypt = function(v){//解密
    return v;
};

$.getJsonLength = function (jsonData){

    var jsonLength = 0;

    for(var item in jsonData){

        jsonLength++;

    }

    return jsonLength;

};
$.getItem = function(key){
    return this.Decrypt(cc.sys.localStorage.getItem(key));
};
$.setItem = function(key,v){
    if (!v){
        cc.sys.localStorage.removeItem(key);
    }else{
        cc.sys.localStorage.setItem(key,this.Encryption(v));
    }
};
$.uid = 0;
$.token = "";

$.token = null;
$.getToken = function(){
    if($.token == null)
    {
        $.token = this.Decrypt(cc.sys.localStorage.getItem("Token"));
    }
    return $.token;
};
$.setToken = function(v){
    $.token = v;
    $.setItem("Token",v);
};
$.bundleID = null;
$.getBundleID = function(){
    if($.bundleID == null)
    {
        try{
            if(cc.sys.os == cc.sys.OS_IOS) {
                $.bundleID = jsb.reflection.callStaticMethod(
                    "AppController",
                    "GetBundleID");
            }else if(cc.sys.os == cc.sys.OS_ANDROID) {
                //$.bundleID = "android";//(Ljava/lang/String;)V
                $.bundleID = jsb.reflection.callStaticMethod("org/cocos2dx/javascript/AppActivity", "getAppPackageName", "()Ljava/lang/String;");
            }else if(cc.sys.os == cc.sys.OS_WINDOWS) {
                $.bundleID = "windows";
            }
        }catch(e)
        {
            $.bundleID = "unknown";
        }
        cc.log("--------GetBundleID : " + $.bundleID +"--------");
    }

    if($.bundleID == null || $.bundleID == undefined)
    {
        $.bundleID = "unknown";
    }
    return $.bundleID;

};
$.curPage = 1;
$.umeng_id = null;
$.getUmengID = function(){
    if($.umeng_id == null || $.umeng_id == undefined)
    {
        try{
            if(cc.sys.os == cc.sys.OS_IOS) {
                $.umeng_id = jsb.reflection.callStaticMethod(
                    "AppController",
                    "GetBundleID");
            }else if(cc.sys.os == cc.sys.OS_ANDROID) {
                //GetChannel UMENG_CHANNEL
                $.umeng_id = jsb.reflection.callStaticMethod("org/cocos2dx/javascript/AppActivity", "GetUmengChannel", "(Ljava/lang/String;)Ljava/lang/String;","UMENG_CHANNEL");
            }else if(cc.sys.os == cc.sys.OS_WINDOWS) {
                $.umeng_id = "windows";
            }
        }catch(e)
        {
            $.bundleID = "unknown";
        }

    }
    cc.log("--------getUmengID : " + $.umeng_id +"--------");
    if($.umeng_id == null || $.umeng_id == undefined)
    {
        $.umeng_id = "unknown";
    }
    return $.umeng_id;

};


$.OnUploadNative = function(data){

    data = decodeURIComponent(data);
    var vecArg =  data.split("##");
    
    //platform++userID++token++nickname++iconQzone++figureurl_qq_2
    
    
    var obj = {};
    var action = vecArg[0];
    var url = vecArg[2];
    
    if(action == "avatar")
    {
        dwc.MySelf.GetData().SetAvatar(dwc.MySelf.GetData().GetUid());
        dwc.DT_Data_Login.sendAvatar(dwc.MySelf.GetData().GetUid(),url);
    }
    if(action == "voice")
    {
        
    }
};
$.undefined_avatar = undefined;
$.getAvatarUrl = function(index,gender)
{
    var vecBest = [1,8];
    if(!index && !gender)
    {
        if(!$.undefined_avatar) {
            $.undefined_avatar = vecBest[Math.floor(Math.random() * (2))];
            $.undefined_avatar =  "res/avatar/" + $.undefined_avatar + ".jpg";
        }
        return $.undefined_avatar;
    }
    var vecMale = [1,3,5,7,9,9];
    var vecFemale = [2,4,6,8,10,10];
    if(index == 0)
    {
        if(gender == 0)
        {
            index = vecFemale[4];
        }else {
            index = vecMale[0];
        }
    }

    if(index > 0 && index <= 10)
    {
        return "res/avatar/" + index + ".jpg";
    }else{
        return "http://zjmj.cjpoker.com/app/avatar.php?id=" + index;
    }
};
$.getMyAvatarUrl = function(index,gender)
{
    return "http://zjmj.cjpoker.com/app/avatar.php?id=" + index;
}
$.payMethod = "AppStore";
$.getPayMethod = function(){
    return $.payMethod;
};
$.setPayMethod = function(_method){
    $.payMethod = _method;
};
$.getNodeByName = function(rootNode,nodeName){
    var findNode = ccui.helper.seekWidgetByName(rootNode,nodeName);
    if (findNode)
    {
        return findNode;
    }
    var allChildren = rootNode.getChildren();
    for(var nodeIndex in allChildren)
    {
        if (allChildren.hasOwnProperty(nodeIndex)){
            findNode = ccui.helper.seekWidgetByName(allChildren[nodeIndex],nodeName);
            if (findNode != undefined)
            {
                return findNode;
            }else{
                findNode = $.getNodeByName(allChildren[nodeIndex],nodeName);
                if (findNode != undefined)
                {
                    return findNode;
                }
            }
        }
    }
    return findNode;
};
$.nRoomMultiple = 0;
$.SetCurRoomMultiple = function(__multiple){
    $.nRoomMultiple=__multiple;
};
$.GetCurRoomMultiple = function(){
    return $.nRoomMultiple;
};

$.pool = function(){
    this._pool = [];
    this.getPid = function(obj)
    {
        return obj.tag;
    };
    this.putInPool = function(obj)
    {
        var pid = obj.tag;
        if (!this._pool[pid]) {
            this._pool[pid] = [];
        }
        obj.retain && obj.retain();
        this._pool[pid].push(obj);
    };
    this.hasObject = function (objTag) {
        if(this._pool && this._pool.hasOwnProperty(objTag + "")){
            var list = this._pool[objTag];
            return list != undefined && list.length != 0;
        }
        return false;
    };
    this.getFromPool = function (objTag) {
        if (this.hasObject(objTag)) {
            var list = this._pool[objTag];
            var obj = list.pop();
            cc.sys.isNative && obj.release && this._autoRelease(obj);
            return obj;
        }
    };
    this._autoRelease = function (obj) {
        var running = obj._running === undefined ? false : !obj._running;
        cc.director.getScheduler().schedule(this._releaseCB, obj, 0, 0, 0, running)
    };
    this._releaseCB = function () {
        this.release();
    };
    this.drainAllPools = function () {
        for (var i in this._pool) {
            for (var j = 0; j < this._pool[i].length; j++) {
                var obj = this._pool[i][j];
                // JSB release to avoid memory leak
                obj.release && obj.release();
            }
        }
        this._pool = {};
    };
    return this;
};
$.p = $.pool;


$.listener = function(){
    this.listeners = [];
    this.addListener = function(_name,_cb,_tag){
        if(typeof _name === "string"){
            this.__addListener({name:_name,cb:_cb,tag:_tag});
        }else{
            this.__addListener(_name);
        }
    };
    this.sendEvent = function(_name,_v){
        if (this.listeners.hasOwnProperty(_name)){
            var l = this.listeners[_name];
            if (typeof l.cb == "function"){
                if (l.tag){
                    if(!(_v instanceof Array)){
                        _v = [_v];
                    }
                    l.cb.apply(l.tag,_v);
                }else{
                    l.cb(_v);
                }
            }
        }
    };
    this.removeListener = function(_name){
        if(typeof _name === "string"){
            this.__removeListener(_name);
        }else{
            if (this.listeners.hasOwnProperty("name")){
                if(typeof _name.name === "string"){
                    this.__removeListener(_name.name);
                }
            }
        }
    };
    this.__removeListener = function(_name){
        if (this.listeners.hasOwnProperty(_name)){
            delete this.listeners[_name];
        }
    };
    this.__addListener = function(l){
        if(this.listeners == undefined){
            this.listeners = [];
        }
        this.listeners[l.name] = l;
    };
    return this;
};
$.l = $.listener;

//状态管理 多个状态不允许同时存在
$.stateManagement = function(){
    this.__allstates = [];
    this.__allRunIngStates = [];
    this.__allTempArgs = [];
    this.__lastState = null;

    this.addState = function(n,tag,cb1,s,cb2) {
        var l1 ={tag:tag,cb:cb1,args:null};
        var l2 ={tag:tag,cb:cb2,args:null};
        if(!cb1){l1=null;}
        if(!cb2){l2=null;}
        if (!s){s = 0;}
        this.__addState(n,l1,s,l2);
    };
    this.__addState = function(__stateName,__l1,__stopTimes,__l2) {
        this.__allstates[__stateName] = {l1:__l1,s:__stopTimes,l2:__l2};
        this.__allRunIngStates[__stateName] = false;
    };
    this.stopState = function(__stateName,__args) {
        if (!__stateName){
            return;
        }
        if(this.__allRunIngStates[__stateName]){
            this.__allRunIngStates[__stateName] = false;
            var state = this.__allstates[__stateName];
            if (state){
                var args = __args;
                this.Run(state.l2,args);
            }
        }
    };
    this.runState = function(__stateName,__args) {
        if (!__stateName){
            return;
        }
        this.stopState(this.__lastState);
        if (!this.__allRunIngStates[__stateName]){
            this.__allRunIngStates[__stateName] = true;
            this.__lastState = __stateName;
            var state = this.__allstates[__stateName];
            if(state){
                var args = __args;
                this.Run(state.l1,args);
                if(state.s > 0){
                    cc.director.getScheduler().schedule(this.stopState, this, 0, 0, state.s);
                }
                delete this.__allTempArgs[__stateName];
            }
        }
    };
    this.Run = function(l,args){
        if(l && l.cb && l.tag){
            args = args || l.args;
            if(args){
                if(!(args instanceof Array)){
                    args = [args];
                }
            }
            l.cb.apply(l.tag,args);
        }
    };
    return this;
};
$.s = $.stateManagement;


$.getNetImage = function(imageUrl,cb){
    cc.loader.loadImg(imageUrl,cb);//TODO 缓存
};
/*
 $.getNetImage("https://ss1.baidu.com/6ONXsjip0QIZ8tyhnq/it/u=71150614,3509732656&fm=58",function(msg,image){
 //image
 });
 */
//auto rootNode = CSLoader::createNode("MainScene.csb");
//auto node = CSLoader::createNode(str);
//ActionTimeline *action = CSLoader::createTimeline("guanka.csb");

$.loadAction = function(re){
    return ccs.load(re).action;
};
$.loadNode = function(re){
    return ccs.load(re).node;
};


//动画制作
var createAnimationByPlist = function(frames, time){
    var animation = cc.Animation.create(frames, time);
    var animate = cc.animate(animation);
    return animate;
};
var createAnimationByImg = function(imgAry, time){
    var animation = cc.Animation.create();
    for(var i=0; i<imgAry.length; i++){
        animation.addSpriteFrameWithFile(imgAry[i]);
    }
    animation.setDelayPerUnit(time || 0.2);//每一帧播放间隔
    animation.setRestoreOriginalFrame(true);//是否回到第一帧播放
    var animate = cc.animate(animation);
    return animate;
};
$.rotateScale = function(node,srcW,srcH)
{
    if(srcW > srcH)
    {
        if(cc.winSize.width > cc.winSize.height)
        {
            node.setScale(cc.winSize.width / srcW, cc.winSize.height / srcH);
        }else{
            node.setScale(cc.winSize.height / srcW, cc.winSize.width / srcH);
            node.rotation=90;
        }
    }else{
        if(cc.winSize.width > cc.winSize.height)
        {
            node.setScale(cc.winSize.height / srcW, cc.winSize.width / srcH);
            node.rotation=90;
        }else{
            node.setScale(cc.winSize.width / srcW, cc.winSize.height / srcH);
        }
    }
};
$.getScale = function(width,height)
{
    var scaleX = dwc.g_clientDefine.FIXED_WIDTH / width;
    var scaleY = dwc.g_clientDefine.FIXED_HEIGHT / height;
    var scale = scaleX < scaleY ? scaleX : scaleY;
    return scale;
};
$.award_lefttime = 0;
$.formatTimeWithSeconds= function (sec) {
    var min=parseInt(sec/60);
    var secs=sec%60;
    if(min<10){
        min="0"+min.toString();
    }
    if(secs<10){
        secs="0"+secs.toString();
    }
    return "" + min + ":" + secs;
};

$.userInfo = function(max_user){
    this.users = [];
    if (!max_user)max_user = 6;
    for (var index = 0;index < max_user;index++){//index 座位号
        this.users[index] = new dwc.GameUserinfo(null,null,null,null,null,false,null);
    }

    this.leaveRooms = function(lUsers){
        lUsers.forEach(
            function(lu){
                this.leaveRoom(lu);
            },this
        );
    },
        this.leaveRoom = function(lUser){
            this.users.forEach(
                function(user){
                    if(user.uid && user.uid == lUser.m_lUid){
                        user.leaveRoom();
                    }
                }
                ,this);
        },
        this.addUserInfo = function(userInfo){
            var seat = userInfo.m_iSeat;
            var uid = userInfo.m_lUid;
            var isUpdate = false;
            var userInfoLayer = this.users[seat-1];
            this.users.forEach(
                function(user){
                    if(user.uid && user.uid == uid){
                        userInfoLayer = user;
                        isUpdate = true;
                    }
                    if(!user.uid && !userInfoLayer){//位置空 并且没有找到位置
                        userInfoLayer = user;
                        isUpdate = false;
                    }
                },this
            );
            if (userInfoLayer){
                var _isSelf = $.getItem($.key.UID) == uid;
                var _isLive = true;
                var _nickname = userInfo.m_sNickName;
                if (userInfo.m_sNickName)
                {
                    _nickname = userInfo.m_sNickName;
                } else {
                    _nickname = userInfo.m_sNickName;
                }
                
                var _headUrl = $.getAvatarUrl(userInfo.m_iAvatar);
                var _coinCount = userInfo.m_lTotalCoin;
                var _lotteryCount = 0;
                var _babyCount = 0;
                userInfoLayer.uid = uid;
                userInfoLayer.sendUpdateUserInfo(_nickname,_headUrl,_coinCount,_lotteryCount,_babyCount,_isLive,_isSelf);
            }
        };
    this.updateUserInfoCoin = function(m_lUid,m_lTotalCoin){
        this.sendUpdateUserInfo(m_lUid,null,null,m_lTotalCoin);
    };
    this.updateUserInfo = function(m_lUid,m_sNickName,m_iAvatar,m_lTotalCoin){
        this.addUserInfo({m_lUid:m_lUid,m_sNickName:m_sNickName,m_iAvatar:m_iAvatar,m_lTotalCoin:m_lTotalCoin});
    };
    this.updateXY = function(xys,time){
        for (var index = 0;index < max_user;index++){//index 座位号
            var userLayer = this.users[index];
            var xy = xys[index] || {x:0,y:0};
            if (time){
                userLayer.runAction(cc.moveTo(time,cc.p(xy.x || 0,xy.y || 0)));
            }else{
                userLayer.x =xy.x || 0;
                userLayer.y = xy.y || 0;
            }
        }
    };
    return this;
};





function playEffect(_sound,loop){
    //TODO 音效总开关
    cc.audioEngine.playEffect(_sound,loop || false);
}
function playMusic(_sound,loop){
    //TODO 音效总开关
    cc.audioEngine.playMusic(_sound,loop || false);
}
$.playEffect = playEffect;
$.playMusic = playMusic;

$.testWebsocketUrl = "";
$.gameSocketUrl = {};

$.gateIPs = undefined;
$.gatePorts = undefined;

dwc.Math={
    sqrt: function (pt1,pt2) {
        return Math.sqrt( (pt2.x - pt1.x)*(pt2.x - pt1.x) + (pt2.y - pt1.y)*(pt2.y - pt1.y) )
    }
};

//统计string字符个数
dwc.CalCharOfString = function  (string){
    var str,Num = 0;
    for(var i =0 ; i< string.length; i++){
        str = string.substring(i, i+1);
        if(str <= "~"){
            Num +=1;
        }else{
            Num +=3;
        }
    }
    return Num;
};

$.getNodeByName = function(rootNode,nodeName){
    var findNode = ccui.helper.seekWidgetByName(rootNode,nodeName);
    if (findNode != undefined)
    {
        return findNode;
    }
    var allChildren = rootNode.getChildren();
    for(var nodeIndex in allChildren)
    {
        if (allChildren.hasOwnProperty(nodeIndex)){
            findNode = ccui.helper.seekWidgetByName(allChildren[nodeIndex],nodeName);
            if (findNode != undefined)
            {
                return findNode;
            }else{
                findNode = $.getNodeByName(allChildren[nodeIndex],nodeName);
                if (findNode != undefined)
                {
                    return findNode;
                }
            }
        }
    }
    return findNode;
};
dwc.LengthOfString = function  (string){
    var str,Num = 0;
    for(var i =0 ; i< string.length; i++){
        str = string.substring(i, i+1);
        if(str <= "~"){
            Num +=1;
        }else{
            Num +=3;
        }
    }
    return Num;
};
//屏蔽关键词词库
dwc.MaskingKey = [
    " ",
    "\n",
    "管理员",
    "系统",
    "王八",
    "admin",
    "习近平",
    "灭党",
    "退党",
    "亡国",
    "反共",
];
//替换字
dwc.MaskingRepliceKey = function(__key){
    switch (__key){
        case " ":
            return "";
        case "\n":
            return "";
        default :
            return "*";
    }
    return "*";
};
//小型屏蔽关键字功能
dwc.FilterMaskingKey = function (__str){
    var str = __str;

    for(var i = 0; i < dwc.MaskingKey.length; i++){
        var key = dwc.MaskingKey[i];
        do {
            str = str.replace(key + "", dwc.MaskingRepliceKey(key));
        }while(str.search(key) != -1);
    }
    return  str;
};
dwc.md5 = function (string){
    function md5_RotateLeft(lValue, iShiftBits) {
        return (lValue<<iShiftBits) | (lValue>>>(32-iShiftBits));
    }
    function md5_AddUnsigned(lX,lY){
        var lX4,lY4,lX8,lY8,lResult;
        lX8 = (lX & 0x80000000);
        lY8 = (lY & 0x80000000);
        lX4 = (lX & 0x40000000);
        lY4 = (lY & 0x40000000);
        lResult = (lX & 0x3FFFFFFF)+(lY & 0x3FFFFFFF);
        if (lX4 & lY4) {
            return (lResult ^ 0x80000000 ^ lX8 ^ lY8);
        }
        if (lX4 | lY4) {
            if (lResult & 0x40000000) {
                return (lResult ^ 0xC0000000 ^ lX8 ^ lY8);
            } else {
                return (lResult ^ 0x40000000 ^ lX8 ^ lY8);
            }
        } else {
            return (lResult ^ lX8 ^ lY8);
        }
    }
    function md5_F(x,y,z){
        return (x & y) | ((~x) & z);
    }
    function md5_G(x,y,z){
        return (x & z) | (y & (~z));
    }
    function md5_H(x,y,z){
        return (x ^ y ^ z);
    }
    function md5_I(x,y,z){
        return (y ^ (x | (~z)));
    }
    function md5_FF(a,b,c,d,x,s,ac){
        a = md5_AddUnsigned(a, md5_AddUnsigned(md5_AddUnsigned(md5_F(b, c, d), x), ac));
        return md5_AddUnsigned(md5_RotateLeft(a, s), b);
    };
    function md5_GG(a,b,c,d,x,s,ac){
        a = md5_AddUnsigned(a, md5_AddUnsigned(md5_AddUnsigned(md5_G(b, c, d), x), ac));
        return md5_AddUnsigned(md5_RotateLeft(a, s), b);
    };
    function md5_HH(a,b,c,d,x,s,ac){
        a = md5_AddUnsigned(a, md5_AddUnsigned(md5_AddUnsigned(md5_H(b, c, d), x), ac));
        return md5_AddUnsigned(md5_RotateLeft(a, s), b);
    };
    function md5_II(a,b,c,d,x,s,ac){
        a = md5_AddUnsigned(a, md5_AddUnsigned(md5_AddUnsigned(md5_I(b, c, d), x), ac));
        return md5_AddUnsigned(md5_RotateLeft(a, s), b);
    };
    function md5_ConvertToWordArray(string) {
        var lWordCount;
        var lMessageLength = string.length;
        var lNumberOfWords_temp1=lMessageLength + 8;
        var lNumberOfWords_temp2=(lNumberOfWords_temp1-(lNumberOfWords_temp1 % 64))/64;
        var lNumberOfWords = (lNumberOfWords_temp2+1)*16;
        var lWordArray=Array(lNumberOfWords-1);
        var lBytePosition = 0;
        var lByteCount = 0;
        while ( lByteCount < lMessageLength ) {
            lWordCount = (lByteCount-(lByteCount % 4))/4;
            lBytePosition = (lByteCount % 4)*8;
            lWordArray[lWordCount] = (lWordArray[lWordCount] | (string.charCodeAt(lByteCount)<<lBytePosition));
            lByteCount++;
        }
        lWordCount = (lByteCount-(lByteCount % 4))/4;
        lBytePosition = (lByteCount % 4)*8;
        lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80<<lBytePosition);
        lWordArray[lNumberOfWords-2] = lMessageLength<<3;
        lWordArray[lNumberOfWords-1] = lMessageLength>>>29;
        return lWordArray;
    };
    function md5_WordToHex(lValue){
        var WordToHexValue="",WordToHexValue_temp="",lByte,lCount;
        for(lCount = 0;lCount<=3;lCount++){
            lByte = (lValue>>>(lCount*8)) & 255;
            WordToHexValue_temp = "0" + lByte.toString(16);
            WordToHexValue = WordToHexValue + WordToHexValue_temp.substr(WordToHexValue_temp.length-2,2);
        }
        return WordToHexValue;
    };
    function md5_Utf8Encode(string){
        string = string.replace(/\r\n/g,"\n");
        var utftext = "";
        for (var n = 0; n < string.length; n++) {
            var c = string.charCodeAt(n);
            if (c < 128) {
                utftext += String.fromCharCode(c);
            }else if((c > 127) && (c < 2048)) {
                utftext += String.fromCharCode((c >> 6) | 192);
                utftext += String.fromCharCode((c & 63) | 128);
            } else {
                utftext += String.fromCharCode((c >> 12) | 224);
                utftext += String.fromCharCode(((c >> 6) & 63) | 128);
                utftext += String.fromCharCode((c & 63) | 128);
            }
        }
        return utftext;
    };
    var x=Array();
    var k,AA,BB,CC,DD,a,b,c,d;
    var S11=7, S12=12, S13=17, S14=22;
    var S21=5, S22=9 , S23=14, S24=20;
    var S31=4, S32=11, S33=16, S34=23;
    var S41=6, S42=10, S43=15, S44=21;
    string = md5_Utf8Encode(string);
    x = md5_ConvertToWordArray(string);
    a = 0x67452301; b = 0xEFCDAB89; c = 0x98BADCFE; d = 0x10325476;
    for (k=0;k<x.length;k+=16) {
        AA=a; BB=b; CC=c; DD=d;
        a=md5_FF(a,b,c,d,x[k+0], S11,0xD76AA478);
        d=md5_FF(d,a,b,c,x[k+1], S12,0xE8C7B756);
        c=md5_FF(c,d,a,b,x[k+2], S13,0x242070DB);
        b=md5_FF(b,c,d,a,x[k+3], S14,0xC1BDCEEE);
        a=md5_FF(a,b,c,d,x[k+4], S11,0xF57C0FAF);
        d=md5_FF(d,a,b,c,x[k+5], S12,0x4787C62A);
        c=md5_FF(c,d,a,b,x[k+6], S13,0xA8304613);
        b=md5_FF(b,c,d,a,x[k+7], S14,0xFD469501);
        a=md5_FF(a,b,c,d,x[k+8], S11,0x698098D8);
        d=md5_FF(d,a,b,c,x[k+9], S12,0x8B44F7AF);
        c=md5_FF(c,d,a,b,x[k+10],S13,0xFFFF5BB1);
        b=md5_FF(b,c,d,a,x[k+11],S14,0x895CD7BE);
        a=md5_FF(a,b,c,d,x[k+12],S11,0x6B901122);
        d=md5_FF(d,a,b,c,x[k+13],S12,0xFD987193);
        c=md5_FF(c,d,a,b,x[k+14],S13,0xA679438E);
        b=md5_FF(b,c,d,a,x[k+15],S14,0x49B40821);
        a=md5_GG(a,b,c,d,x[k+1], S21,0xF61E2562);
        d=md5_GG(d,a,b,c,x[k+6], S22,0xC040B340);
        c=md5_GG(c,d,a,b,x[k+11],S23,0x265E5A51);
        b=md5_GG(b,c,d,a,x[k+0], S24,0xE9B6C7AA);
        a=md5_GG(a,b,c,d,x[k+5], S21,0xD62F105D);
        d=md5_GG(d,a,b,c,x[k+10],S22,0x2441453);
        c=md5_GG(c,d,a,b,x[k+15],S23,0xD8A1E681);
        b=md5_GG(b,c,d,a,x[k+4], S24,0xE7D3FBC8);
        a=md5_GG(a,b,c,d,x[k+9], S21,0x21E1CDE6);
        d=md5_GG(d,a,b,c,x[k+14],S22,0xC33707D6);
        c=md5_GG(c,d,a,b,x[k+3], S23,0xF4D50D87);
        b=md5_GG(b,c,d,a,x[k+8], S24,0x455A14ED);
        a=md5_GG(a,b,c,d,x[k+13],S21,0xA9E3E905);
        d=md5_GG(d,a,b,c,x[k+2], S22,0xFCEFA3F8);
        c=md5_GG(c,d,a,b,x[k+7], S23,0x676F02D9);
        b=md5_GG(b,c,d,a,x[k+12],S24,0x8D2A4C8A);
        a=md5_HH(a,b,c,d,x[k+5], S31,0xFFFA3942);
        d=md5_HH(d,a,b,c,x[k+8], S32,0x8771F681);
        c=md5_HH(c,d,a,b,x[k+11],S33,0x6D9D6122);
        b=md5_HH(b,c,d,a,x[k+14],S34,0xFDE5380C);
        a=md5_HH(a,b,c,d,x[k+1], S31,0xA4BEEA44);
        d=md5_HH(d,a,b,c,x[k+4], S32,0x4BDECFA9);
        c=md5_HH(c,d,a,b,x[k+7], S33,0xF6BB4B60);
        b=md5_HH(b,c,d,a,x[k+10],S34,0xBEBFBC70);
        a=md5_HH(a,b,c,d,x[k+13],S31,0x289B7EC6);
        d=md5_HH(d,a,b,c,x[k+0], S32,0xEAA127FA);
        c=md5_HH(c,d,a,b,x[k+3], S33,0xD4EF3085);
        b=md5_HH(b,c,d,a,x[k+6], S34,0x4881D05);
        a=md5_HH(a,b,c,d,x[k+9], S31,0xD9D4D039);
        d=md5_HH(d,a,b,c,x[k+12],S32,0xE6DB99E5);
        c=md5_HH(c,d,a,b,x[k+15],S33,0x1FA27CF8);
        b=md5_HH(b,c,d,a,x[k+2], S34,0xC4AC5665);
        a=md5_II(a,b,c,d,x[k+0], S41,0xF4292244);
        d=md5_II(d,a,b,c,x[k+7], S42,0x432AFF97);
        c=md5_II(c,d,a,b,x[k+14],S43,0xAB9423A7);
        b=md5_II(b,c,d,a,x[k+5], S44,0xFC93A039);
        a=md5_II(a,b,c,d,x[k+12],S41,0x655B59C3);
        d=md5_II(d,a,b,c,x[k+3], S42,0x8F0CCC92);
        c=md5_II(c,d,a,b,x[k+10],S43,0xFFEFF47D);
        b=md5_II(b,c,d,a,x[k+1], S44,0x85845DD1);
        a=md5_II(a,b,c,d,x[k+8], S41,0x6FA87E4F);
        d=md5_II(d,a,b,c,x[k+15],S42,0xFE2CE6E0);
        c=md5_II(c,d,a,b,x[k+6], S43,0xA3014314);
        b=md5_II(b,c,d,a,x[k+13],S44,0x4E0811A1);
        a=md5_II(a,b,c,d,x[k+4], S41,0xF7537E82);
        d=md5_II(d,a,b,c,x[k+11],S42,0xBD3AF235);
        c=md5_II(c,d,a,b,x[k+2], S43,0x2AD7D2BB);
        b=md5_II(b,c,d,a,x[k+9], S44,0xEB86D391);
        a=md5_AddUnsigned(a,AA);
        b=md5_AddUnsigned(b,BB);
        c=md5_AddUnsigned(c,CC);
        d=md5_AddUnsigned(d,DD);
    }
    return (md5_WordToHex(a)+md5_WordToHex(b)+md5_WordToHex(c)+md5_WordToHex(d)).toLowerCase();
}
$.OnJiePing= function (picName) {
    var renderTexture=new cc.RenderTexture(1280,720,0,0);
    renderTexture.setPosition(cc.p((1280)/2,(720)/2));
    renderTexture.begin();
    cc.director.getRunningScene().visit();
    renderTexture.end();
    return renderTexture.saveToFile(picName,cc.IMAGE_FORMAT_PNG);
};